home *** CD-ROM | disk | FTP | other *** search
/ Aminet 38 / Aminet 38 (2000)(Schatztruhe)[!][Aug 2000].iso / Aminet / dev / asm / AmigaGS-Dev.lha / AmigaGS / Examples / ScreenScrolls / ScrollVertical.exe.s < prev    next >
Encoding:
Text File  |  2000-05-04  |  2.7 KB  |  140 lines

  1. ; **************************
  2. ; *                        *
  3. ; * AMIGA GAME STUDIO BETA *
  4. ; *                        *
  5. ; *------------------------*
  6. ; *                        *
  7. ; * Example de viewer pour *
  8. ; * des images iff/ilbm de *
  9. ; * 2 à 256 couleurs .     *
  10. ; *                        *
  11. ; **************************
  12. ;
  13. ; Fichier startup de AGS.
  14.     Include    "AmigaGS:AmigaGS-Startup.s"
  15. ;
  16. ;
  17. ; VOTRE PROGRAMME COMMENCERA ICI !!!!!!!!
  18. ;
  19. ; Mise en place du copper AGA.
  20.     LibCall        Display,Ags_Display
  21. ;
  22. ; On prend les valeurs IFF/ILBM
  23.     Lea.l        Ilbm,a0
  24.     LibCall        FxIlbm,IlbmXSize
  25.     Lea.l        X,a0
  26.     Move.l        d0,(a0)
  27. ;
  28.     Lea.l        Ilbm,a0
  29.     LibCall        FxIlbm,IlbmYSize
  30.     Lea.l        Y,a0
  31.     Move.l        d0,(a0)
  32. ;
  33.     Lea.l        Ilbm,a0
  34.     LibCall        FxIlbm,IlbmDepth
  35.     Lea.l        Depth,a0
  36.     Move.l        d0,(a0)
  37. ;
  38. ; Ouverture de l'ecran necessaire.
  39.     Lea.l        X,a0
  40.     Moveq.l        #0,d0            ; Ecran 0
  41.     Movem.l        (a0)+,d1/d2/d3    ; X,Y,Depth.
  42.     LibCall        Screens,Screen_Open
  43.  
  44. ; On place l'ecran dans le display AmigaGS.
  45.     Moveq.l        #0,d0
  46.     LibCall        Screens,Screen_Base
  47.     LibCall        Display,Ags_Screen
  48.     Move.l        #256,d0
  49.     LibCall        Display,YDisplaySize
  50.  
  51. ; On va convertir l'image IFF/ILBM Dans l'ecran.
  52.     Moveq.l        #0,d0
  53.     LibCall        Screens,Screen_Base
  54.     Lea.l        Ilbm,a1
  55.     LibCall        FxIlbm,IlbmConvert
  56.  
  57. ; Pour finir,On va placer la bonne palette de couleur.
  58.     Lea.l        Ilbm,a0
  59.     LibCall        FxIlbm,IlbmPalette    ; ->A0=palette base
  60.     Lea.l        CMAP,a1
  61.     Move.l        a0,(a1)
  62.     Lea.l        Depth,a1
  63.     Move.l        (a1),d0    ; D0=#bpls
  64.     Lsl.w        #1,d0    
  65.     Lea.l        DepthMask,a4
  66.     Add.w        d0,a4
  67.     Lea.l        Depth,a0
  68.     clr.l        (a0)
  69. ;
  70. ; On redéfinit ??? couleurs selon le déssin.
  71.     Lea.l        CMAP,a0
  72.     Lea.l        Depth,a1
  73.     Move.l        (a0),a3        ; A3=Palette Pointer.
  74.     Add.l        #4,a3
  75.     Move.l        (a1),d0        ; D0=Couleur en cours.
  76. bcl2
  77.     Clr.l        d1
  78.     Move.b        (a3)+,d1    ; D1=ROUGE.
  79.     Clr.l        d2
  80.     Move.b        (a3)+,d2    ; D2=VERT.
  81.     Clr.l        d3
  82.     Move.b        (a3)+,d3    ; D3=BLEU.
  83.     LibCall        Display,Ags_SetColor
  84.     Lea.l        Depth,a0
  85.     Addq.l        #1,(a0)
  86.     Move.l        (a0),d0        ; D0=Prochaine couleur.
  87.     Cmp.w        (a4),d0
  88.     Blt.b        bcl2
  89. ;
  90. ; On attend l'appui sur le bouton gauche de la souris.
  91.  
  92.     LibCall        AGSSystem,TasksOff
  93.  
  94. ; Après un déplacement du scrolling.
  95. wlc
  96.     Lea.l        Scroll,a0
  97.     Clr.l        d0                ; D0=XScroll=0
  98.     Move.l        (a0),d1            ; D1=YScroll
  99.     Subq.l        #1,d1
  100. ;0<=XScroll<=319
  101.     Tst.l        d1
  102.     Bge.b        w1d
  103.     Add.l        #25600,d1
  104. w1d:
  105.     Move.l        d1,(a0)
  106.     Divu.l        #100,d1
  107.     LibCall        Display,Screen_Offset
  108.  
  109. ;waitbcl:
  110. ;    Move.l        #50,d7
  111. ;    Sub.l        #1,d7
  112. ;    Tst.l        d7
  113. ;    Bgt.b        waitbcl
  114.     LibCall        Joyport,Joy0Fire1State
  115.     Tst.b        d0
  116.     Beq.b        wlc
  117.  
  118.  
  119. ; On revient au workbench,on remet tout à 0 et on quitte.
  120. _Fin1:
  121.     LibCall        AGSSystem,TasksOn
  122.  
  123.     LibCall        Display,WB_Display
  124.     ScreenClose    #0
  125.     Moveq.l        #0,d0
  126.     Rts
  127.  
  128. ;
  129. ; Autres librairies définissables par l'utilisateur
  130. ;
  131. X:        Dc.l    0
  132. Y:        Dc.l    0
  133. Depth:    Dc.l    0
  134. CMAP:    Dc.l    0
  135. DepthMask:
  136.         Dc.w    0,2,4,8,16,32,64,128,256
  137. Scroll:    Dc.l    0
  138. Ilbm:
  139.     Incbin    "AmigaGS:Samples/VScroll.lbm"
  140.